/**
 * 获取(min,max]的随机Int
 * @param min {Number} 最小值
 * @param max {Number} 最大值
 * @return {number}
 */
export function getRandomInt (min, max) {
  return Math.floor(Math.random() * (max - min + 1) + min)
}

/**
 * 随机排列arr
 * @param arr {Array}
 * @return {Array}
 */
export function shuffle (arr) {
  let _arr = arr.slice()
  for (let i = 0, len = _arr.length; i < len; i++) {
    if (i !== 0) {
      let index = getRandomInt(0, len - 1)
      let temp = _arr[i]
      _arr[i] = _arr[index]
      _arr[index] = temp
    }
  }
  return _arr
}

/**
 * 节流函数
 * @param {Function} func
 * @param {Number} delay
 */
export function debounce (func, delay) {
  let timer
  return function (...args) {
    if (timer) {
      clearTimeout(timer)
    }
    timer = setTimeout(() => {
      func.apply(this, args)
    }, delay)
  }
}
